package Negocio;

import javax.persistence.*;

import DTO.ViajeSucursalDestinoVO;
import SRV.SucursalSRV;

@Entity
@DiscriminatorValue("SucursalDestino")
public class ViajeSucursalDestino extends Viaje
{
	@OneToOne
	@JoinColumn(name="idSucOrigen")
	private Sucursal origen;
	
	@Column(name="direDestino")
	private String direccionDestino;
	
	@Column(name="codPosDestino")
	private String codigoPostalDestino;
	
	@Column(name="localidadDestino")
	private String localidadDestino;
	
	@Column(name="provDestino")
	private String provinciaDestino;	
	
	public ViajeSucursalDestino(float distancia, String detalle, Sucursal origen, String direccionDestino, 
		String codigoPostalDestino, String localidadDestino, String provinciaDestino) 
	{
		super(distancia, detalle);
		this.origen = origen;
		this.direccionDestino = direccionDestino;
		this.codigoPostalDestino = codigoPostalDestino;
		this.localidadDestino = localidadDestino;
		this.provinciaDestino = provinciaDestino;
	}

	public ViajeSucursalDestino toBusiness(ViajeSucursalDestinoVO viajeVO){
	    Sucursal sucursalOrigen = new Sucursal();
	    SucursalSRV daoSuc = new SucursalSRV();
	    
	    sucursalOrigen = daoSuc.getSucursal(viajeVO.getOrigen());
	    
	    ViajeSucursalDestino devuelto = new ViajeSucursalDestino(viajeVO.getDistancia(), viajeVO.getDetalle(),
		    sucursalOrigen, viajeVO.getDireccionDestino(), viajeVO.getCodigoPostalDestino(), viajeVO.getLocalidadDestino(), 
		    viajeVO.getProvinciaDestino());
	    
	    return devuelto;
	}
	
	public ViajeSucursalDestino() {}

	public Sucursal getOrigen() {
		return origen;
	}

	public void setOrigen(Sucursal origen) {
		this.origen = origen;
	}

	public String getDireccionDestino() {
		return direccionDestino;
	}

	public void setDireccionDestino(String direccionDestino) {
		this.direccionDestino = direccionDestino;
	}

	public String getCodigoPostalDestino() {
		return codigoPostalDestino;
	}

	public void setCodigoPostalDestino(String codigoPostalDestino) {
		this.codigoPostalDestino = codigoPostalDestino;
	}

	public String getLocalidadDestino() {
		return localidadDestino;
	}

	public void setLocalidadDestino(String localidadDestino) {
		this.localidadDestino = localidadDestino;
	}

	public String getProvinciaDestino() {
		return provinciaDestino;
	}

	public void setProvinciaDestino(String provinciaDestino) {
		this.provinciaDestino = provinciaDestino;
	}
	@Override
	public boolean sosViajeInterSucursal() {
		return false;
	}

	@Override
	public boolean sosViajeOrigenSucursal() {
		return false;
	}

	@Override
	public boolean sosViajeSucursalDestino() {
		return true;
	}
	
	public ViajeSucursalDestinoVO toVO() {
		ViajeSucursalDestinoVO viajeVO = new ViajeSucursalDestinoVO(getIdViaje(), getDistancia(), getDetalle(), getOrigen().getIdSucursal(), 
				getDireccionDestino(),getCodigoPostalDestino(), getLocalidadDestino(), getProvinciaDestino());
		return viajeVO;
	}
}
